In the operation of a wireless communication system, a transmitter device transmits a signal containing useful data to a receiver device over an air interface. In multiple-input multiple-output (MIMO) wireless communication systems, a signal is transmitted over multiple parallel paths by way of multiple transmit antennas and/or multiple receive antennas. A MIMO system takes advantage of the spatial diversity and/or multiplexing provided by multiple parallel antennas to improve the signal-to-noise ratio (SNR) of the combined received signal and increase data throughput without increasing bandwidth usage. MIMO has many benefits including improved spectrum efficiency, improved bit rate and robustness at the cell edge, reduced inter-cell and intra-cell interference, improvement in system capacity and reduced average transmit power requirements.
Error correcting codes are commonly used in wireless systems to protect against bit errors in received signals caused by channel fading, interference and receiver defects. Typically, an encoder adds redundancy information to user data prior to transmission, and a corresponding decoder is applied to the received signal to recover the original data. Turbo codes are a particular type of high-performance error correcting code. FIG. 1 shows an example of a spatial temporal turbo channel coding (STTCC) encoder 100 designed to exploit the correlation between spatial paths corresponding to different transmit antennas in a MIMO wireless communication system. STTCC encoder 100 also uses time diversity by transmitting the same symbols repeatedly over time, as described below. Because STTCC encoder 100 exploits both time and space diversity, it can be described as a space-time frequency modulation encoder.
Referring to FIG. 1, given a desired data rate of L bits/symbol period, a vector B=[b1, . . . bL] of L data bits is derived from the high-speed data stream X using serial-to-parallel (S/P) converter 105. The data vector B=[b1, . . . bL] is processed according to 3 parallel paths to produce systematic bits comprising the useful data bits and two sets of parity bits comprising the redundant error correcting information. Each path of STTCC encoder 100 is described below.
In the first path, modulation mapping unit 1141 provides systematic symbols [s1, . . . , sU] based on the information bit vector B according to a modulation mapping function Φ[B]=[s1, . . . , sU], where Φ[.] maps the data bits onto transmitted symbols based on the modulation type. For example, for quadrature phase shift keying (QPSK) modulation, a symbol comprises 2 bits and thus the corresponding number of systematic symbols is U=L/2 symbols. The systematic symbols are provided to circular shifted switcher 130.
In the second path, recursive encoder 1101 is used to generate a first set of encoded parity bits D1=[d11, . . . , dM1]. A recursive encoder implies that a current output is calculated based on a current input and previous encoder outputs provided by a feedback path. An example of a recursive encoder is a recursive convolutional encoder. The encoded parity bits D1=[d11, . . . , dM1] are provided to a rate matching unit 1121 that may add or delete bits from vector D1 as needed to achieve a desired data rate. These techniques are referred to as padding and puncturing, respectively. The length P of the resulting output vector C1=[c11, . . . , cp1] determines the coding rate of the STTCC encoder. Modulation mapping unit 1142 maps the vector bits C1=[c11, . . . , cp1] to encoded parity symbol vector S1=[sU+11, . . . , sN1] according to modulation mapping function Φ1[C]=[sU+11, . . . , sN1], where N is the total number of transmit antennas. Examples of modulation mapping functions include, but are not limited to, QPSK modulation, 16 quadrature amplitude modulation (16-QAM), 64 quadrature amplitude modulation (64-QAM) and higher-order modulation.
A second set of encoded parity bits D2=[d12, . . . , dM2] are generated by first interleaving the bits of data vector B=[b1, . . . bL] using interleaver 107 and providing the interleaved vector B′=[b′1, . . . b′L] to recursive encoder 1102. Interleaver 107 may, for example, arrange vector B according to odd and even bits. The encoded parity bits D2=[d12, . . . , dM2] are provided to rate matching unit 1122 where vector D2 is padded or punctured as required to meet the desired data rate producing vector C2=[c12, . . . , cp2]. Modulation mapping unit 1142 maps vector C2=[c12, . . . , cp2] to encoded parity symbol vector S2=[sU+12, . . . , sN2] according to a modulation mapping function Φ2[C]=[sU+12, . . . , sN2]. The encoded symbol vector S2 may be de-interleaved if desired by de-interleaver 115.
The encoded parity symbol vectors S1 and S2 are selectively outputted over time by multiplexer 120. For example, at each symbol period the encoded parity vector [sU+1, . . . , sN] output by multiplexer 125 may alternate between the first parity vector [sU+1, . . . , sN]=[sU+11, . . . , sN1] and the second parity vector [sU+1, . . . , sN]=[sU+12, . . . , sN2]. The combined symbol vector S=[s1, . . . , su, su+1, . . . , sN] comprising the systematic bits and the encoded parity symbols is called the codeword and has a data rate of L/L+P and a coding rate of P/L+P. Codeword S is provided to a circular shifted switcher 130 that provides the symbols of vector S cyclically over time to each of N transmit antennas for transmission, according to the following.
The output vector S′=[s′1, . . . , s′N] of circular shifted switcher 130 is mapped to the set of antennas 1, 2, . . . , N (not shown) such that symbol s′1, is transmitted by antenna 1, symbol s′2 is transmitted by antenna 2 and the remaining symbols are transmitted accordingly by respective antennas up to antenna N. The circular shifted switcher 130 maps the symbols of vector S to vector S′=[s′1, . . . , s′N] by cyclically rotating vector S at each consecutive symbol period, so that each symbol gets mapped to a different antenna over time. For example, at symbol period t1[s′1, . . . , s′N]=[s1, . . . , sN] such that symbol s1 is transmitted by antenna 1, and at symbol period t2 [s′1, . . . , s′N]=[sN, s1 . . . , sN−1] such that symbol s1 is transmitted by antenna 2. The circular rotation of vector S continues accordingly for up to N symbol periods.
Following the STTCC encoder 100, and prior to transmission over the N parallel transmit antennas, the symbols [s′1, . . . , s′N] may undergo further processing as desired including, but not limited to, interleaving, spreading, scrambling, pulse shaping and carrier modulation (not shown).
The STTCC encoder 100 transmits the encoded symbols over different spatial streams provided by the multiple antennas, however, the prior art STTCC encoder does not take into account signal quality or signal power over possible spatial streams when assigning codeword symbols to spatial streams for transmission. The performance of the STTCC including power efficiency can be improved by effectively exploiting the additional spatial degrees of freedom in a MIMO channel afforded by the use of eigen-beamforming techniques.